<?php
require_once('conf/top.php');
$template = $tpl->loadTemplate('commande.html');

connectDb();
session_start();

$theme = theme(); // Gérer dans lib.

$erreurs = null;
$isValid = 0;
$orderComplete = null;
$users = null;
$categories = null;
$prices = null;
$times = null;


if(isset($_SESSION['id_user']) && !empty($_SESSION['id_user'])){ // utilisateur connecté
	if(isset($_POST['valide']) && !empty($_POST['valide'])){ // a cliqué sur le bouton passer commande et chaque champs est remplis

		/* verification des champs remplis */
		if(isset($_POST['adressD']) && !empty($_POST['adressD'])){
			$_POST['adressD'] = htmlspecialchars(stripslashes($_POST['adressD']));
		    $_POST['adressD'] = str_ireplace("script", "blocked", $_POST['adressD']);
			$adressD = $_POST['adressD'];
		}
		if(isset($_POST['adressR']) && !empty($_POST['adressR'])){
			$_POST['adressR'] = htmlspecialchars(stripslashes($_POST['adressR']));
		    $_POST['adressR'] = str_ireplace("script", "blocked", $_POST['adressR']);
			$adressR = $_POST['adressR'];
		}
		if(isset($_POST['cpD']) && !empty($_POST['cpD'])){
			$_POST['cpD'] = htmlspecialchars(stripslashes($_POST['cpD']));
		    $_POST['cpD'] = str_ireplace("script", "blocked", $_POST['cpD']);
			$cpD = $_POST['cpD'];
		}
		if(isset($_POST['cpR']) && !empty($_POST['cpR'])){
			$_POST['cpR'] = htmlspecialchars(stripslashes($_POST['cpR']));
		    $_POST['cpR'] = str_ireplace("script", "blocked", $_POST['cpR']);
			$cpR = $_POST['cpR'];
		}
		if(isset($_POST['villeD']) && !empty($_POST['villeD'])){
			$_POST['villeD'] = htmlspecialchars(stripslashes($_POST['villeD']));
		    $_POST['villeD'] = str_ireplace("script", "blocked", $_POST['villeD']);
			$villeD = $_POST['villeD'];
		}
		if(isset($_POST['villeR']) && !empty($_POST['villeR'])){
			$_POST['villeR'] = htmlspecialchars(stripslashes($_POST['villeR']));
		    $_POST['villeR'] = str_ireplace("script", "blocked", $_POST['villeR']);
			$villeR = $_POST['villeR'];
		}
		if(isset($_POST['paysD']) && !empty($_POST['paysD'])){
			$_POST['paysD'] = htmlspecialchars(stripslashes($_POST['paysD']));
		    $_POST['paysD'] = str_ireplace("script", "blocked", $_POST['paysD']);
			$paysD = $_POST['paysD'];
		}
		if(isset($_POST['paysR']) && !empty($_POST['paysR'])){
			$_POST['paysR'] = htmlspecialchars(stripslashes($_POST['paysR']));
		    $_POST['paysR'] = str_ireplace("script", "blocked", $_POST['paysR']);
			$paysR = $_POST['paysR'];
		}

		if(isset($_SESSION['panier']['produits']) && !empty($_SESSION['panier']['produits'])){ // le panier existe et n'est pas vide
			if(isset($paysR) && isset($paysD) && isset($villeR) && isset($villeD) && isset($cpR) && isset($cpD) && isset($adressR) && isset($adressD)){ // Vérification de tous les champs
				// Pour chaque produit du panie rje vérifie qu'ilsexistent sinon erreur.
				foreach ($_SESSION['panier']['produits'] as $product) { // si chaque article est bon je les enregistre dans la base de donnée
					if(!checkProduct($product['id_user'],$product['firstname'],$product['lastname'],$product['dates'],$product['duration'],$product['categorie'],$product['price'],$product['id_availability'])){
						$erreurs[] = "Et non! L'injection n'a pas fonctionnée vil personnage ! (Un produit n'existe pas)";
					}
				}
				// Si il n'y a pas d'erreur je créer la commande
				if(empty($erreurs)) {
					insertOrder($_SESSION['id_user'],$adressD,$adressR,$cpD,$cpR,$villeD,$villeR,$paysD,$paysR);
					$id_order = getLastIdOrderByUser($_SESSION['id_user']);
					$orderComplete = getLastOrderByUser($_SESSION['id_user']);
				}
				// Insertion des temps commander dans la table temps pour savoir qu'ils ontété reservés.
				foreach ($_SESSION['panier']['produits'] as $product) {
					$id_categories = getIdCategorieFromName($product['categorie']);
					$isValid = insertTime($product['id_availability'], $id_order[0][0] , $product['id_user'], $id_categories[0][0] , $product['dates'], $product['duration']);
					if($isValid == 0) {
						// Del l'order
						$erreurs[] = "Un temp a mal été rentré.";
					}
				}
				if(empty($erreurs)){ // si jai déjà passé ma commande
					$times = getTimesByIdOrder($id_order[0]['id_order']);
					foreach ($times as &$time){ // Passage par addresse pour modifier directment le tableau
						$user = getUserById($time['id_user']);
						$time['user'] = $user[0];
						$categories = getCategorieNameById($time['id_categorie']);
						$time['categorie'] = $categories[0]['name'];
						$prices = getAVailabilityPriceById($time['id_availability']);
						$time['price'] = $prices[0]['price'];
					}
				}
				supprimePanier();
				// envoie d'un mail de confirmation de commande
				$mail = getUserById($_SESSION['id_user']);
				if(!empty($mail)){
					$order = $orderComplete[0];
					$idorder = $id_order[0][0];
					$to=$mail[0]['mail'];
					$subject="Confirmation de votre commande TimeShop";
					// From
					$header="from: TimeShop";
					$message="Vous venez de passer une commande chez TimeShop.\r\n";
					$message.="Votre numéro de commande est le : $idorder\r\n";
					/*$message.= "L'adresse de facturation est : $order['adressBilling'], $order['postcodeBilling'] $order['cityBilling'] \r\n";
					$message.= "L'adresse de rendez-vous est : $order['adressDelivery'], $order['postcodeDelivery'] $order['cityDelivery'] \r\n";*/
					$message.="TimeShop vous remercie et espère que vous ferez bonne usage du temps.";
					$message.="En cas de problème veuillez contacter un administrateur du site.";
					$sentmail = mail($to,$subject,$message,$header);
					if($sentmail){
						$infos[] = "Votre commande a bien été enregistrée. La confirmation de votre commande vous a été envoyé par mail.";
						header('Refresh: 8; url=index.php');
					}
					else {
						$erreurs[] = "Une erreur s'est produite lors de l'envoi de la confirmation de votre commande sur votre mail.";
						header('Refresh: 8; url=index.php');
					}
				}
			}
			else{
				$erreurs[] = "Certains des champs du formulaire sont mals remplis";
			}
		}
		else{
			header('location:index.php');
		}
	}
}
else{
	header('location:login.php');
}

echo $template->render(array('MEDIA_PATH' => MEDIA_PATH, 'session' => $_SESSION, 'theme' => $theme, 'erreurs' => $erreurs, 'isValid' => $isValid, 'orderComplete' => $orderComplete, 'times' => $times));
?>